The present invention relates to computer systems for generating charts and graphs. More particularly, the present invention relates to computer systems that create network diagrams that can track project planning and scheduling.
Many conventional project planning software applications provide multiple chart formats for project scheduling data. However, the conventional project planning software applications do not display the project scheduling data in a manner that defines the interrelationships between multiple tasks that may comprise a single work project in an organized manner which can be manipulated or customized by a user.
For example, the simplest scheduling tool is the bar or Gantt chart. In this conventional format, work activities or tasks are listed in a vertical direction while elapsed time for each work activity or task is recorded horizontally. This chart format clearly shows the date by which an activity should start and finish, but this format does not make clear how the ability to start one activity depends upon the successful completion of other activities. In other words, the relationships between work activities of the whole project are not easily ascertainable by reviewing the project data in this format.
In addition to the lack of clarity between work tasks of the Gantt chart, conventional project planning software does not permit significant customizable features for displaying work project data. For example, the conventional art does not permit the customization of shapes or sizes of individual nodes that may represent tasks or work activities of a project. That is, the conventional art does not provide a mechanism in which the user can select specific shapes for particular work tasks. Further, conventional project planning software does not permit user customization of the final screen locations of nodes within the chart.
For example, conventional project planning software usually does not permit a user to select portions of a chart for customization. In other words, a user cannot select a specific node on a chart and manipulate it further while it is displayed as a chart or diagram. Also, conventional project planning software does not provide any mechanism in which to filter nodes that may represent work tasks of a specific category. Stated differently, conventional project planning software does not permit a user to filter the displayed output or chart of project data such that only nodes representing work activities of a specific category are displayed.
Accordingly, there is a need in the art for a system and method for organizing and generating a network diagram that permits a user to customize the displayed output of the network diagram. There is the further need in the art for generating a network diagram that clearly displays the interrelationships between a plurality of nodes that make up an entire work project. Additionally, there is a need in the art for generating a network diagram that organizes project planning information in a well balanced manner that highlights the interrelationships between nodes and the interrelationships between one or more node chains.
The present invention is generally directed to a layout engine that determines the positioning of graphical items, called nodes, of a computer generated chart and automatically places the nodes to form the chart on a display screen. The nodes can represent work tasks that have specific starting times or ending times or both. The nodes can have established or predetermined relationships, called dependencies, between each other. That is, each node can be assigned a defined relationship, represented by lines-called links, relative to another node.
For example, a first node could represent the first task or job in a work project while a second node could represent a second task or job that can only be started upon completion of the first task. In this exemplary scenario, the second node would be called a successor of the first node. Because of the second node""s dependency, the second node""s position relative to the first node, according to one aspect of the invention, would be calculated to be on the right side of the first node.
Alternatively, the first node could represent a summary task and the second node could represent a first subtask of one or more subtasks to a job or mini-project that requires many steps. Similar to the previous task completion dependency scenario, the second node""s position in this summary task/subtask scenario would be calculated to be on the right side of the first node. Thus, according to one aspect of the present invention, the layout engine of the present invention may use the concept that the flow of dependencies in a chart between nodes would be from left to right on a display screen.
Because of the dependencies between nodes, the present invention could be characterized as similar to conventional program modules that produce Program Evaluation and Review Technique (PERT) and Gantt Charts. However, the processing of data for the conventional art is much different than the present invention. Many conventional PERT and Gantt Chart program modules do not provide for the manual adjustment in combination with automatic adjustment for the placement of nodes. In other words, the arrangement of nodes with a conventional PERT Chart or Gantt Chart program module often is automatic and cannot be modified by a user.
Further, Conventional PERT and Gantt Chart program modules typically do not permit the filtering of nodes or displaying certain nodes based upon preset criteria. With the conventional art, usually the size, shape, and color of nodes are fixed and cannot be customized on an individual basis. In other words, most conventional chart program modules typically do not permit individual node formatting.
In contrast to the conventional art, the present invention can automatically determine the layout of some nodes within a chart on a display screen while permitting manual adjustment of other nodes. The present invention can also filter the types of nodes that will be displayed. More specifically, the present invention can support various automatic layout schemes or spatial arrangements of the nodes that can be modified or adjusted; manually by the user. The present invention can create a network diagram that highlights the interrelationships between respective nodes by substantially reducing and sometimes eliminating any intersections of links between nodes. That is, the present invention can create a network diagram that includes a plurality of nodes that are linked together to form one or more node chains. The one or more node chains can provide a balanced and logical presentation of the interrelationships between the nodes where links between nodes flow in a substantially smooth manner by reducing the intersections between respective links.
The layout engine of the present invention can support many diverse network diagram layout schemes. For example, the layout engine can support at least three layout schemes: (1) a layout scheme that begins at a top left corner of the display screen and expands down and to the right as nodes are laid out; (2) a layout scheme that begins near the middle of a left side of a display screen and expands evenly up and down and to the right as nodes are laid out; and (3) a layout scheme that begins in the middle of a network diagram at the top of the display screen and expands down evenly to the right and left, similar to an organization chart.
According to another aspect of the present invention, the first layout scheme can be formatted according to a timescale, where columns within the layout scheme can represent certain amounts of time, such as days, weeks, or months. In addition to the various layout schemes, the present invention can adjust the display of a particular chart because of changes in size, shape, categorization of a node, or filtering of nodes based on categorization, or any combination thereof These are just a few exemplary parameters that are tracked by the present invention. In other words, when these parameters are adjusted, the layout engine can compensate or recalculate a placement of a node because of the changes in individual formatting of a particular node, such as size or shape or both.